<template>
    <div class="singer-song">
        <!-- 添加歌曲列表数据-->
        <div class="list">
            <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
                <div v-for="(item, index) in list" :key="index">
                    <h3>{{ item.name }}</h3>
                    <div class="singer">
                        <span v-for="(singer, index) in item.singer" :key="index">
                            {{ singer.name }}
                            <span v-show="index != item.singer.length - 1">/</span>
                        </span>
                        <span v-show="item.album">
                            <span>.</span>
                            <span>{{ item.album.name }}</span>
                            <span v-show="item.subtitle != ''">
                                <span>·</span>
                                <span>{{ item.subtitle }}</span>
                            </span>

                        </span>
                    </div>
                </div>
            </van-list>
        </div>
    </div>
</template>
<script>
export default {
    //通过props接收父组件传递的数据<SingerIntro :singeid='id' />
    props: ["singerId"],
    created() {
        this.getData()
    },
    data() {
        return {
            list: [],//vant的list列表数据
            loading: false,
            finished: false,
            page: 1,//获取api数据的页码
        };
    },
    methods: {
        getData() {
            this.$request("get", "singer/songs", {
                singermid: this.singerId,
                num: 30,
                page: this.page,
            })

                .then((res) => {
                    console.log(res)
                    //res.data.list中是分页获取的数据,30个,把这个数据添加到vant的list列表数据中
                    this.list = this.list.concat(res.data.list)
                    //加载状态结束
                    this.loading = false;
                    //页码自动加1
                    this.page++;
                    //数据全部加载完成(如果页码加1之后获取到data.list的长度为0,代表数据加载完成,没有数据)
                    if (res.data.list.length == 0) {
                        this.finished = true;
                    }
                });
        },
        onLoad() {
            setTimeout(() => {
                this.getData(); //调用获取分页数据的方法
                this.loading = true; //正在加载
            }, 1000);
        },
    },
};


</script>

<style scoped>
.list {
    margin: 0 1rem;
}

.list h3 {
    text-align: left;
    font-size: 1rem;
}

.singer {
    text-align: left;
}

.singer span {
    font-size: 0.8rem;
    color: rgb(160, 160, 190);
}

.singer>span:nth-last-child(1)>span:nth-child(1) {
    margin: 0 0.5rem;
    font-weight: 900;
    color: red;
}

.singer>span:nth-last-child(1)>span:nth-last-child(1)>span:nth-child(1) {
    color: red;
}

.singer>span:nth-last-child(1)>span:nth-last-child(1) {
    margin: 0 0.5rem;
    font-weight: 900;
}
</style>